home *** CD-ROM | disk | FTP | other *** search
/ Light ROM 1 / LIGHT-ROM 1 (Amiga Library Services)(1994).iso / ffdisks / d883.lha / BBBBS / BBBBS59.lha / rexx / ArcAlpha.rexx < prev    next >
OS/2 REXX Batch file  |  1992-10-31  |  4KB  |  145 lines

  1. /*     $VER: 5.7 ArcAlpha.rexx 31 Oct 1992 (31.10.92)
  2.   archives user defined alphafilelist into file in users email
  3. it receives its arguments from rexxDoors/Make_BrowseList.rexx
  4.  copyright 1991-92 Richard Lee Stockton FREELY DISTRIBUTABLE
  5. */
  6.  
  7. SIGNAL ON ERROR
  8. SIGNAL ON SYNTAX
  9. OPTIONS FAILAT 999999
  10.  
  11. PARSE ARG name lastbrowse numlist
  12. lastbrowse=STRIP(lastbrowse)
  13.  
  14. IF ~DATATYPE(lastbrowse,'N') | name='' | numlist='' THEN
  15.   CALL GETOUT(20)
  16.  
  17. figarg='s:CONFIG.BBS'
  18. IF ~EXISTS(figarg) THEN figarg='BBS:BBS_TEXT/CONFIG.BBS'
  19. x=OPEN(f,figarg,'R')
  20. IF x=0 THEN
  21.   DO
  22.     SAY 's:CONFIG.BBS and BBS:BBS/CONFIG.BBS are both missing!'
  23.     CALL GETOUT(21)
  24.   END
  25. lynes.=''
  26. DO i=1 TO 33
  27.   lynes.i=READLN(f)
  28. END
  29. CALL CLOSE(f)
  30.  
  31. compos=POS('/*',lynes.1)
  32. IF compos>0 THEN lynes.1=LEFT(lynes.1,compos-1)
  33. bbsname = STRIP(lynes.1)
  34.  
  35. sysop   = WORD(lynes.2,1)
  36.  
  37. bbspath = WORD(lynes.6,1)
  38. IF ~EXISTS(bbspath) THEN
  39.   DO
  40.     SAY bbspath 'does not exist!'
  41.     CALL SETCLIP('BBS_BROWSE')
  42.     CALL GETOUT(22)
  43.   END
  44. testchar=RIGHT(bbspath,1)
  45. IF testchar~='/' & testchar~=':' THEN bbspath=bbspath'/'
  46.  
  47. CALL PRAGMA('P',-4)         /* lower the priority of this task */
  48.  
  49. extension=WORD(lynes.32,1)
  50. arccom=lynes.33
  51. compos=POS('/*',lynes.33)
  52. IF compos>0 THEN lynes.33=LEFT(lynes.33,compos-1)
  53. arccom=STRIP(lynes.33)
  54. IF LEFT(extension,1)~='.' THEN
  55.   DO
  56.     extension='.lzh'
  57.     arccom='lharc -m m'
  58.   END
  59.  
  60. filepath=bbspath'EmailFiles/'name
  61. CALL MAKEDIR(filepath)
  62. x=OPEN(f,bbspath'Numbers/LastMail','R')
  63. IF x~=0 THEN lastm=READLN(f)+1
  64. CALL CLOSE(f)
  65. ADDRESS COMMAND 'ECHO >'bbspath'Numbers/LastMail 'lastm
  66. alphaname=filepath'/BBBBS_'lastm
  67.  
  68. alphalist.=''
  69. x=OPEN(f,bbspath'Lists/Files.ALPHA','R')
  70. IF x=0 THEN CALL GETOUT(24)
  71. DO i=1
  72.   line=READLN(f)
  73.   IF EOF(f) THEN LEAVE i
  74.   alphalist.i=line
  75. END
  76. alphalist.0=i-1
  77. CALL CLOSE(f)
  78. numba=alphalist.0
  79.  
  80. x=OPEN(a,alphaname,'W')
  81. IF x=0 THEN CALL GETOUT(25)
  82. title='=' bbsname 'single line, alphabetical file descriptions'
  83. CALL WRITELN(a,title)
  84. CALL WRITELN(a,'= Custom archived for' name'  'DATE() TIME('C'))
  85. CALL WRITELN(a,'')
  86. CALL WRITELN(a,'Filename          Bytes File# Library         KeyWords')
  87. CALL WRITELN(a,LEFT('=',77,'='))
  88. CALL CLOSE(a)
  89.  
  90. x=OPEN(f,bbspath'Email/'name'/BBBBS.'lastm,'W')
  91. IF x=0 THEN CALL GETOUT(28)
  92. CALL WRITELN(f,' Mail: 'lastm'   FILE: BBBBS_'lastm)
  93. CALL WRITELN(f,' From: BBBBS')
  94. CALL WRITELN(f,'   To: 'name)
  95. CALL WRITELN(f,' Subj: AlphaList')
  96. CALL WRITELN(f,' Date: 'DATE('W') DATE() TIME('C'))
  97. CALL WRITELN(f,LEFT('=',75,'='))
  98. CALL WRITELN(f,'Here are the single line file descriptions you requested.')
  99. CALL WRITELN(f,'The collection process was interrupted.')
  100. CALL CLOSE(f)
  101.  
  102. DO j=1 TO alphalist.0
  103.   IF WORD(alphalist.j,3)<=lastbrowse THEN ITERATE j
  104.   IF FIND(numlist,WORD(alphalist.j,4))=0 THEN ITERATE j
  105.   x=OPEN(a,alphaname,'A')
  106.   IF x=0 THEN ITERATE j
  107.   CALL WRITELN(a,alphalist.j)
  108.   CALL CLOSE(a)
  109. END
  110.  
  111. IF WORD(STATEF(alphaname),2)<40 THEN CALL GETOUT(26)
  112. CALL PRAGMA('P',0)         /* normal priority */
  113. ADDRESS COMMAND arccom alphaname||extension alphaname
  114. IF ~EXISTS(alphaname||extension) THEN CALL GETOUT(27)
  115. x=OPEN(f,bbspath'Email/'name'/BBBBS.'lastm,'W')
  116. IF x=0 THEN CALL GETOUT(28)
  117. CALL WRITELN(f,' Mail: 'lastm'   FILE: BBBBS_'lastm||extension)
  118. CALL WRITELN(f,' From: BBBBS')
  119. CALL WRITELN(f,'   To: 'name)
  120. CALL WRITELN(f,' Subj: AlphaList')
  121. CALL WRITELN(f,' Date: 'DATE('W') DATE() TIME('C'))
  122. CALL WRITELN(f,LEFT('=',75,'='))
  123. CALL WRITELN(f,'Here are the single line file descriptions you requested.')
  124. CALL CLOSE(f)
  125. IF GETCLIP('BBS_level')~='' & WORD(GETCLIP('BBS_lastcaller'),1)=name THEN
  126.   DO
  127.     oldmess=GETCLIP('BBS_MESSAGE')
  128.     IF oldmess~='' THEN oldmess=oldmess||'0D0A'x
  129.     CALL SETCLIP('BBS_MESSAGE',oldmess||'Your archived alphabetical filelist is waiting in Email.')
  130.   END
  131. CALL GETOUT(0)
  132. EXIT
  133.  
  134.  
  135. ERROR:
  136. SYNTAX:
  137. GETOUT:
  138. ARG errorout 
  139. CALL SETCLIP('BBS_BROWSE')
  140. IF errorout>0 THEN SAY 'ArcAlpha error' errorout'!'
  141. EXIT(errorout)
  142.  
  143.  
  144. /* end of ArcAlpha.rexx */
  145.